//
//  CASpringAnimation.swift
//  Documentation
//
//  Created by Toj on 8/9/23.
//

import QuartzCore

/** Subclass for mass-spring animations. */
@available(iOS 9.0, *)
open class CASpringAnimation : CABasicAnimation {

    /// 表示动画质量的因子, 影响动画的弹性和惯性.
    /// 质量值越大, 动画的波动幅度越小
    open var mass: CGFloat = 1

    /// 表示动画刚度的因子, 影响动画的弹簧力度.
    /// 刚度值越大, 动画的回弹速度越快
    open var stiffness: CGFloat = 100

    
    /// 表示动画阻尼的因子, 影响动画的回弹幅度.
    /// 阻尼值越大, 动画的阻尼效果越强
    open var damping: CGFloat = 10

    /// 表示动画初始速度的向量.
    /// 可以设置动画的初始速度和方向, 用于模拟弹簧动画的初始状态
    /// 默认值为.zero, 表示没有初始速度
    open var initialVelocity: CGFloat = .zero

    /// 表示动画稳定的时间.
    /// 该属性用于获取预测的动画稳定所需的时间量, 以秒为单位
    open var settlingDuration: CFTimeInterval { get }
}
